home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / graphics / fractals.lzh / FRACTAL.S < prev    next >
Text File  |  1991-09-23  |  2KB  |  114 lines

  1. ***********************************************************
  2. *                                                         *
  3. *   FRACTALS    for the Atari TT med resolution           *
  4. *                                                         *
  5. *   (C) 9/1990  by Uwe Seimet, MAXON Computer             *
  6. *                                                         *
  7. *   taken from 'ST Computer' Vol. 11/90, Heim Verlag      *
  8. *                                                         *
  9. *   - procedure KEYPRESS added by Markus Wenzel -         *
  10. *                                                         *
  11. ***********************************************************
  12.  
  13.  
  14.     GEMDOS        =  1
  15.     LOGBASE        =  3
  16.     XBIOS        = 14
  17.  
  18.     iter_depth     = 50    
  19.     
  20.         text
  21.     
  22.         dc.w    $a00a
  23.         
  24.         move     #LOGBASE,-(sp)
  25.         trap    #XBIOS
  26.         addq.l    #2,sp
  27.         move.l    d0,a0
  28.         
  29.         fmove.x    #-2,fp6
  30.         fmove.x    #-1.25,fp7
  31.         fmove.x    #1,fp4
  32.         fmove.x    #1.25,fp5
  33.         fsub.x    fp6,fp4
  34.         fdiv.x    #640,fp4
  35.         fsub.x    fp7,fp5
  36.         fdiv.x    #480,fp5
  37.         
  38.         fsub.x    fp5,fp7
  39.         fmove.x    fp5,-(sp)
  40.         moveq    #4,d2
  41.         clr        d7
  42.     loopi:
  43.         fadd.x    (sp),fp7
  44.         fmove.x    #-2,fp6
  45.         fsub.x    fp4,fp6
  46.         clr        d6
  47.     loopk:
  48.         moveq    #0,d0
  49.         moveq    #0,d1
  50.         clr        d5
  51.     loopj:
  52.         fadd.x    fp4,fp6
  53.         fmovecr.x #$0f,fp0
  54.         fmovecr.x #$0f,fp1
  55.         moveq    #0,d4
  56.         moveq    #0,d3
  57.     looph:
  58.         fmove.x    fp0,fp2
  59.         fmul.x    fp0,fp2
  60.         fmove.x    fp1,fp3
  61.         fmul.x    fp1,fp3
  62.         fmove.x    fp3,fp5
  63.         fadd.x    fp2,fp5
  64.         fcmp    d2,fp5
  65.         fblt    else
  66.         move.l    d3,d4
  67.         bra cont
  68.     else:
  69.         fmul.x    fp0,fp1
  70.         fadd.x    fp1,fp1
  71.         fadd.x    fp7,fp1
  72.         fmove.x    fp2,fp0
  73.         fsub.x    fp3,fp0
  74.         fadd.x    fp6,fp0
  75.         addq    #1,d3
  76.         cmp        #iter_depth,d3        
  77.         bne        looph
  78.     cont:
  79.         lsr        #1,d4
  80.         roxl    #1,d0
  81.         swap    d0
  82.         lsr        #1,d4
  83.         roxl    #1,d0
  84.         swap    d0
  85.         lsr        #1,d4
  86.         roxl    #1,d1
  87.         swap    d1
  88.         lsr        #1,d4
  89.         roxl    #1,d1
  90.         swap    d1
  91.         addq    #1,d5
  92.         cmp        #16,d5
  93.         bne        loopj
  94.         move.l    d0,(a0)+
  95.         move.l    d1,(a0)+
  96.         add        #16,d6
  97.         cmp        #640,d6
  98.         bne        loopk
  99.         addq    #1,d7
  100.         cmp        #480,d7
  101.         bne        loopi
  102.         
  103. keypress:
  104.          move.w    #$0B,-(sp)
  105.          trap    #GEMDOS
  106.          addq.l    #2,sp
  107.          tst.b    d0
  108.          beq        keypress
  109.          
  110.         fmove    (sp)+,fp5
  111.         dc.w    $a009
  112.         clr        -(sp)
  113.         trap    #GEMDOS
  114.